package org.sam.swing.table.verification;

/**
 * 文本输入长度必须在min和max之间
 * 
 * @author sam
 *
 */
public class LengthVerificatior extends AbstractVerificatior {

	/**
	 * 文本最小长度
	 */
	private int minValue = 0;

	/**
	 * 最大值 阈值
	 */
	private int maxValue = Integer.MAX_VALUE;

	/**
	 * 最大值 阈值
	 * 
	 * @return
	 */
	public int getMaxValue() {
		return maxValue;
	}

	/**
	 * 最大值 阈值
	 * 
	 * @param minValue
	 */
	public void setMaxValue(int maxValue) {
		this.maxValue = maxValue;
	}

	/**
	 * 文本最小长度
	 * 
	 * @return
	 */
	public int getMinValue() {
		return minValue;
	}

	/**
	 * 文本最小长度
	 * 
	 * @return
	 */
	public void setMinValue(int minValue) {
		this.minValue = minValue;
	}

	/**
	 * 文本输入长度必须在min和max之间
	 * 
	 * @param min
	 * @param max
	 */
	public LengthVerificatior(int min, int max) {
		super("输入必须为小于" + max);
		this.setMaxValue(max);
	}

	/**
	 * 文本输入长度必须在min和max之间
	 * 
	 * @param min
	 * @param max
	 * @param message
	 */
	public LengthVerificatior(int min, int max, String message) {
		super(message);
		this.setMaxValue(max);
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public boolean verificat(Object value) {
		if (value == null)
			return false;

		int iLen = value.toString().length();
		return iLen >= minValue && iLen <= maxValue;
	}

}
